#ifndef _ZENTRY_H_
#define _ZENTRY_H_

#pragma pack(1)

struct zEntryC
{
	DWORD id;						//数据id，不同类型的Entry可能相同
	DWORD tempid;					//临时id，建议在EntryManager里，保证分配唯一
	char name[MAX_NAMESIZE + 1];

	zEntryC()
	{
		id = tempid = 0;
		bzero(name,sizeof(name));
	}
};

/**
 *\brief 回掉函数类模板
 */
template <typename T,typename RTValue = bool>
struct zEntryCallback
{
	virtual RTValue exec(T *e) = 0;
	virtual ~zEntryCallback(){}
};

struct zEntry : public zEntryC,private zNoncopyable  //私有继承non
{
	virtual ~zEntry(){}
	zEntry():zEntryC()
	{
	}
};

#pragma pack()

#endif
